<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组扁平化</title>
</head>

<body>
    <script>
        // 将二维数组变成一维数组
        let arr = [
            [1, [2, 3]],
            4, 5, 6,
            [7, [8]],
            [9],
            10, 11,
            [12, [13, [14, [15]]]]
        ]

        // ES6: flat()
        console.log(arr.flat(3));
        console.log(arr.flat(Infinity));


        // 只考虑二维数组
        // let newArr = [];
        // for (let value of arr) {
        //     newArr = newArr.concat(value);
        // }
        // console.log(newArr);

        // for (let value of arr) {
        //     if (typeof value === 'object') {
        //         for (let item of value) {
        //             newArr.push(item);
        //         }
        //     } else {
        //         newArr.push(value);
        //     }
        // }


        // 考虑多维数组
        // let newArr = [];

        // arrayFlat(arr);
        // function arrayFlat(data) {
        //     for (let value of data) {
        //         if (Array.isArray(value)) {
        //             // 进入if，说明value是数组
        //             arrayFlat(value);
        //         } else {
        //             newArr.push(value);
        //         }
        //     }
        // }
        // console.log(newArr);

    </script>
</body>

</html>